Побудова комп`ютерної системи на мікроконтролері

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Зміст

Введення

  1. Аналіз поставленого завдання

1.1 Обгрунтування достатності апаратних засобів і програмних ресурсів

1.2 довизначення набору апаратних засобів і програмних ресурсів

1.3 Розподіл функцій пристрою між вузлами мікроконтролера

1.4 Вибір і обгрунтування режимів роботи вузлів мікроконтролера

  1. Проектування принципової схеми пристрою

2.1 Схема включення мікроконтролера

2.2 Формування тактових імпульсів

2.3 Організація скидання

2.4 Схеми вхідних і вихідних пристроїв

2.5 Схема джерела напруги харчування

  1. Проектування програмного забезпечення мікропроцесора

3.1 Проектування модуля ініціалізації мікроконтролера

3.2 Проектування процедур обробки переривань

3.3 Проектування процедур обробки інформації

3.4 Проектування процедур виведення інформації

3.5 Проектування процедури Main ()

  1. Лістинг програми

Висновок

Введення

В даний час вбудовані комп'ютерні системи отримують все більше поширення з-за їх високої якості та надійності, а так само простоти обробки інформації.

У ході курсового проекту необхідно розробити КС яка буде зчитувати дані з послідовного порту і виводити оброблену інформацію на LCD індикатор.

За технічним завданням на курсовий проект КС повинна бути побудована на мікроконтролері MSP 430.

Мікроконтролери MSP430 - це 16-розрядні мікроконтролери RISC-архітектури, з розвиненою периферією і наднизьким енергоспоживанням Мікроконтролери сімейства MSP430 містять 16-розрядне RISC CPU, периферійні модулі та гнучку систему тактирования, з'єднані через фон-неймановскую загальну адресну шину (MAB) пам'яті і шину пам'яті даних (MDB). Об'єднуючи сучасне CPU з відображеними в пам'яті аналоговими і цифровими периферійними пристроями, сімейство MSP430 пропонує рішення для додатків зі змішаними сигналами.

  1. Аналіз поставленого завдання.

Темою курсового проекту є "Віддалене пристрій індикації".

Розглянемо загальну структурну схему, наведену на малюнку 1.

Рисунок 1 - Структурна схема пристрою.

В якості мікроконтролера виберемо MSP 430 F 135.

MSP 430 F 135 має пам'ять програм 16 Кбайт + 256 байт, ОЗУ 512 байт. Максимальна кількість контактів вводу / виводу 48. Дана конфігурація дозволяє будувати малопотребляющіе та високоефективні програми.

У запропонованого мікроконтролера достатню кількість контактів введення / виводу і пам'яті програм і даних.

На малюнку 2 наведено MSP 430 F 135.

Малюнок 2 - MSP 430 F 135

Характеристики MSP 430 F 135:

  • 12-розрядний АЦП із внутрішнім джерелом опорної напруги,

  • пристроєм вибірки-зберігання,

  • режимом автоматичної послідовної оцифровки даних

  • компаратор для порівняння аналогових сигналів

  • 16-розрядний таймер з трьома регістрами захоплення / порівняння

  • Послідовний комунікаційний інтерфейс (USART) з програмною налаштуванням режиму: асинхронний - UART або синхронний - SPI

  • Внутрішньосхемного програматор з послідовною передачею даних

  • Захист програмного коду

  • Послідовне програмування (JTAG)

На малюнку 3 наведена внутрішня структура MSP 430 F 135

Рисунок 3 - Внутрішня структура MSP 430 F 135

  1. Проектування принципової схеми пристрою

Схема включення мікропроцесора

Мікроконтролер MSP 430 F 135 містить 6 регістрів введення / виводу. Задіємо Port 1 і Port 2 управління світлодіодним індикатором. Port 4 служить для зчитування даних з датчика Холла.

На малюнку 4 наведена структурна схема включення мікроконтролера.

Рисунок 4 - Структурна схема включення мікроконтролера

Формування тактових імпульсів

Джерелом тактових імпульсів в мікроконтролері MSP 430 F 135 може бути:

    • внутрішній змінний резистор

    • зовнішній резистор

    • Керамічний резонатор

    • 32 kHz кварцовий резонатор

    • високочастотний кварцовий резонатор

    • зовнішнє джерело тактових імпульсів

У даному розробляється пристрої найкращим режимом роботи генератора є застосування зовнішнього кварцового резонатора підключається до контактів XIN і XOUT Це стабільний генератор з точною витримкою тимчасових інтервалів тактовою частоти яка необхідна для дільника USART інтерфейсу.

На рисунку 5 наведена схема тактирования.

Рисунок 5 - Схема тактирования.

Схема скидання

На малюнку 6 приведена апаратна схема скидання по включенню живлення. Дана схема необхідна для первинної ініціалізації апаратури мікроконтролера.

Малюнок 6 - Апаратна схема скидання з включення харчування

Схеми вхідних і вихідних пристроїв

Прийом даних здійснюється по послідовному RS -232 інтерфейсу. Для його нормального функціонування та забезпечення сумісності з рівнями використовуємо мікросхему інтерфейсу MAX 232. Схема включення MAX 232 наведена на рисунку 7.

Рисунок 7 - Схема включення MAX 232

РКІ підключений до мікроконтролера MSP 430 F 135 з допомогою 8-ми розрядною шиною.

Рисунок 8 - Схема підключення ЖКИ.

Алфавітно-цифрові РК - модулі представляють собою недороге і зручне рішення, що дозволяє заощадити час і ресурси при розробці нових виробів, при цьому забезпечують відображення великого обсягу інформації при гарній розрізнення і низькому енергоспоживанні. Можливість оснащення РКІ - модулів заднім підсвічуванням дозволяє експлуатувати їх в умовах зі зниженою або нульовою освітленістю, а виконання з розширеним діапазоном температур (-20 ° С. .. +70 ° С) у складних експлуатаційних умовах, в тому числі в переносній, польовий і навіть, іноді, в бортовій апаратурі.

Відповідно до тимчасової діаграмою в початковому стані сигнал Е = 0, сигнал R / W = 0, значення сигналу RS - довільне, шина даних DBO ... DB7 в стані високого імпедансу (НI). Такий стан керуючих сигналів (E і R / W) має підтримуватися весь час у проміжках між операціями обміну с LCD-модулем. Шина даних в ці моменти в принципі вільна, і може використовуватися в мультиплексному режимі для будь-яких інших цілей, наприклад, для сканування матриці клавіатури. Природно, необхідно подбати про виключення конфліктів на шині даних в момент здійснення операцій обміну с LCD-модулем.

Послідовності дій, які необхідно виконувати керуючої системі при здійсненні операцій запису і читання для 8-ми розрядної шини наведені відповідно в таблицях 1, 2. Для нормальної роботи РКІ необхідно сформувати тимчасові діаграми наведені на рисунках 9 і 10

Таблиця 1. Операції запису для 8-ми розрядної шини

  1. Встановити значення лінії RS

  2. Вивести значення байта даних на лінії шини DB0 ... DB7

  3. Встановити лінію Е = 1

  4. Встановити лінію У = 0

  5. Встановити лінії шини DB0 ... DB7 = HI

Таблиця 2. Операції читання для 8-ми розрядної шини

  1. Встановити значення лінії RS

  2. Встановити лінію R / W = 1

  3. Встановити лінію Е = 1

  4. Вважати значення байта даних з ліній шини DB0 ... DB7

  5. Встановити лінію Е = 0

  6. Встановити лінію R / W = 0

Рисунок 9 - Тимчасова діаграма операції запису

Рисунок 10 - Тимчасова діаграма операції читання

Схема стабілізатора напруги

Стабілізатор напруги побудований на мікросхемі LM 7805. Дана мікросхема є лінійним стабілізатором напруги. Напруга стабілізації 5 V. На малюнку 11 наведена схема включення стабілізатора.

Малюнок 11 - Схема підключення стабілізатора до мікроконтролера.

  1. Проектування програмного забезпечення мікропроцесора

3.1 Проектування модуля ініціалізації мікроконтролера

Для ініціалізації пристрою необхідно виділити пам'ять для глобальних змінних, і провести ініціалізацію портів, таймерів та послідовного інтерфейсу.

3.2 Проектування процедур обробки переривань

Цей пристрій не вимагає написання програми з обробкою переривань. У зв'язку з тим що за завданням необхідна дуже маленька швидкість обміну по RS 232 і швидкодії LCD індикатора та контролера достатньо для впевненого прийому даних.

3.3 Проектування процедур обробки інформації

У мікроконтроллер вбудований послідовний комунікаційний інтерфейс (USART) який забезпечує сумісність з форматом кадру з інтерфейсом RS 232. Узгодження рівнів описано вище.

3.4 Проектування процедур виведення інформації

Висновок даних проводиться на LCD індикатор. Управління індикатором здійснюється за трьома сигнальним і восьми інформаційним лініях зв'язку. Індикація полягає в запису кодів символів у відповідні комірки пам'яті LCD індикатора.

3.5 Проектування процедури Main ()

Процедура Main це головна процедура програми з якої починається виконання. В цій процедурі необхідно викликати процедуру ініціалізації, а потім необхідно перейти в нескінченний цикл опитування датчика, вимірювання й дешифрування величин, відображення даних виконується по перериваннях таймера. На малюнку 12 наведено загальний алгоритм роботи пристрою.

Рисунок 12 - Загальний алгоритм роботи пристрою

  1. Лістинг програми

# Include <msp 430 F 135. H>

void vLCD _ Silence (void); / * Стан висновків "за умовчанням" * /

void vLCD _ Init (void); / * Ініціалізація дисплея * /

void vLCD _ Clear ();/* Очищення дисплея * /

void vLCD _ RetLeft ();/* Переміщення курсору в ліву позицію * /

void vLCD _ EntryModeSet (char ID, ​​char SH) / * Установка напрями зсуву курсору

(ID = 0 / 1 - вліво / вправо) і дозвіл зсуву дисплея (SH = 1) при записі в DDRAM * /

void vLCD _ OnOff (char D, char CB) / * Включає модуль (D = 1) і вибирає тип курсора (див. даташіт) * /

void vLCD _ CurDispShift (char SC, char RL) / * Виполніяет зрушення дисплея або курсору

(SC = 0 / 1 - курсор / дисплей, RL = 0 / 1 - вліво / вправо) * /

void vLCD _ FuncSet (char DL, char _ N, char _ F) / * Встановлює розрядність інтерфейсу

(DL = 0 / 1 - 4 / 8 біта), режим розгортки рядків (_ N = 0 / 1 - один рядок / два рядки)

і розмір символу (_ F = 0 / 1 - 5х8/5х10) * /

void vLCD _ SetAddr (char ADD) / * Установка адреси для подальших операцій та вибір області DDRAM * /

void vLCD _ WriteData (char DATA) / * Запис даних в активну область * /

void vLCD_Delay (char a) / * Затримка на 0 / 1 - 40 мкс/1.95 мс * /

/ * Команди (0) / Дані (1) * /

void vRS (char set)

{

if (set)

P3OUT | = 0x80;

else

P3OUT & = ~ 0x80;

}

/ * Синхронізація * /

void vEN (char set)

{

if (set)

P3OUT | = 0x40;

else

P3OUT & = ~ 0x40;

_ NOP ();

}

/ * Запис в індикатор

RS - команди (0) / дані (1); Data - тіло команди / дані * /

void vLCD_Write (char RS, char Data)

{

vRS (RS);

_NOP ();

/ / _NOP ();

P1OUT & = Data | 0x0f; / / Запис старшої тетради.

vEN (1);

_NOP ();

/ / _NOP ();

vEN (0);

_NOP ();

/ / _NOP ();

P1OUT & = ~ 0xf0;

P1OUT | = (Data <<4) & ~ 0x0f; / / Запис молодшої тетради.

_NOP ();

/ / _NOP ();

vEN (1);

_NOP ();

/ / _NOP ();

vEN (0);

_ NOP ();

/ / _ NOP ();

P 1 OUT | = 0 xf 0; / / Встановлює на висновках стан "за замовчуванням".

_ NOP ();

/ / _ NOP ();

}

/ * Стан висновків "за умовчанням" * /

void vLCD_Silence (void)

{

vEN (0);

vRS (0);

P 1 OUT = 0 xf 0;

}

/ * Ініціалізація дисплея * /

void vLCD_Init (void)

{

for (char i = 0; i <21; i + +)

vLCD _ Delay (1); / / затримка на 40 мс.

vRS (0);

_ NOP ();

P 1 OUT & = 0 x 30 | 0 x 0 f; / / Запис старшої тетради.

vEN (1);

_ NOP ();

vEN (0);

_ NOP ();

P 1 OUT | = 0 xf 0; / / Встановлює на висновках стан "за замовчуванням".

_NOP ();

for (char i = 0; i <3; i + +)

vLCD _ Delay (1); / / затримка на 4.1 мс.

vLCD _ FuncSet (0,0,0); / / 4-х розрядна шина, розгортка 1 рядків, символ 5х8.

vLCD _ FuncSet (0,1,0); / / 4-х розрядна шина, розгортка 1 рядків, символ 5х8.

vLCD _ OnOff (1,0); / / Увімк. модуля, викл. курсору.

vLCD _ Clear ();// Очищення DDRAM.

vLCD _ EntryModeSet (1,0); / / Зрушення курсору вправо, зсув дисплея заборонений.

}

/ * Очищення дисплея * /

void vLCD _ Clear ()

{

vLCD_Write (0,0 x01);

vLCD_Delay (1);

}

/ * Переміщення курсору в ліву позицію * /

void vLCD_RetLeft ()

{

vLCD_Write (0,0 x02);

vLCD_Delay (1);

}

/ * Установка напрями зсуву курсору (ID = 0 / 1 - вліво / вправо)

і дозвіл зсуву дисплея (SH = 1) при записі в DDRAM * /

void vLCD_EntryModeSet (char ID, ​​char SH)

{

char Data = 0x04 + (ID <<1) + SH;

vLCD_Write (0, Data);

vLCD_Delay (0);

}

/ * Включає модуль (D = 1) і вибирає тип курсора (див. даташіт) * /

void vLCD_OnOff (char D, char CB)

{

char Data = 0x08 + (D <<2) + CB;

vLCD_Write (0, Data);

vLCD_Delay (0);

}

/ * Виполніяет зрушення дисплея або курсору (SC = 0 / 1 - курсор / дисплей,

RL = 0 / 1 - вліво / вправо) * /

void vLCD _ CurDispShift (char SC, char RL)

{

char Data = 0x10 + (SC <<3) + (RL <<2);

vLCD_Write (0, Data);

vLCD_Delay (1);

}

/ * Встановлює розрядність інтерфейсу (DL = 0 / 1 - 4 / 8 біта), режим розгортки b рядків (N = 0 / 1 - один рядок / два рядки) і розмір символу (F = 0 / 1 - 5х8/5х10) * /

void vLCD_FuncSet (char DL, char _N, char _F)

{

char Data = 0x20 + (DL <<4) + (_N <<3) + (_F <<2);

vLCD_Write (0, Data);

vLCD_Delay (0);

}

/ * Установка адреси для подальших операцій та вибір області DDRAM * /

void vLCD_SetAddr (char ADD)

{

ADD + = 0x80;

vLCD_Write (0, ADD);

vLCD _ Delay (0);

}

/ * Запис даних в активну область * /

void vLCD_WriteData (char DATA)

{

vLCD_Write (1, DATA);

vLCD_Delay (0);

}

/ * Затримка на 0 / 1 - 40 мкс/1.95 мс * /

void vLCD_Delay (char a)

{

IFG 1 & = ~ WDTIFG; / / Скинули черговий прапор переривання ...

/ / Запуск Собаки з очищенням.

if (a)

WDTCTL = 0 x 5 A 00 | 0 x 1 f; / / TMSEL, SSEL, WDIS .1, WDIS .0 - період 1.95 мс.

else

WDTCTL = 0x5A00 | 0x1b; / / TMSEL, WDIS.1, WDIS.0 0 - період 12.8 мкс.

char z = 1;

if (! a) z = 4;

for (char i = 0; i <z; i + +)

{

while (! (IFG 1 & WDTIFG))

_ NOP ();// поки немає переривання від Собаки - висимо.

IFG 1 & = ~ WDTIFG; / / Скинули черговий прапор переривання ...

}

/ / Зупинка Собаки.

WDTCTL = 0 x 5 A 00 | 0 x 93; / / HOLD, TMSEL, WDIS .1, WDIS .0

}

/ * Висновок рядка c позиції line, column до кінця рядка. Якщо фактична довжина рядка більше, рядок переписується з початкової позиції.

Початок рядки: line - номер рядка зверху (0-3),

column - позиція першого символу в рядку, string - рядок символів * /

void vLCD_TransMassive (unsigned char line, unsigned char column,

unsigned char string [])

{

/ / Для коректної роботи слід встановити наступний режим:

/ / VLCD _ EntryModeSet (1,0); / / Зрушення курсору вправо, зсув дисплея заборонений.

unsigned char ADD = line, ColumnCounter = column;

/ * Обчислюємо ардес в DDRAM * /

switch (ADD)

{

case 3:

ADD = 0x54;

break;

case 2:

ADD = 0x14;

break;

case 1:

ADD = 0x40;

case 0:

break;

default:

ADD = 0x00;

}

if (column> 19)

column = 0;

ADD + = column;

vLCD _ SetAddr (ADD); / / Установка адреси.

for (char i = 0;; i ++)// Запис рядка (нескінченний цикл).

{

if (string [i] == '\ 0') / / Якщо виявлено сімовл кінця рядка - вихід з циклу.

return;

else

{

vLCD_WriteData (string [i]);

if (+ + ColumnCounter> 19) / / Якщо досягнутий фізичний кінець рядка,

{

vLCD _ SetAddr (ADD); / / продовжуємо запис з початкової позиції.

ColumnCounter = column;

}

}

}

_ NOP ();

}

Висновок

У даному курсовому проекті було розроблено віддалене пристрій індикації.

Використання зовнішнього кварцового генератора забезпечує високу стабільність роботи послідовного комунікаційного інтерфейсу (USART).

У ході проектування пристрою були розглянуті основні принципи побудови пристроїв на мікроконтролерах MSP 430 від Texas Instruments. А так само вивчені апаратні можливості даних мікроконтролерів.

Навчилися за описами роботи або тимчасовим діаграм функціонування пристроїв складати алгоритми тих чи інших блоків програм.

У цілому за розробленим курсового проекту можна помітити, що використання мікроконтролерів MSP 430 дозволяє будувати недорогі і продуктивні мікроконтролерних системи не використовую зовнішнє периферійне устаткування (аналоговий компаратор, апаратний таймі та ін.)

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
66.9кб. | скачати


Схожі роботи:
Дослідження процесів самотестування комп`ютерної системи при включенні
Розробка друкованої плати пристрої керування живлення комп`ютерної системи
Методологічні аспекти проведення аудиту та особливості тестування системи комп`ютерної обробки
Комп ютерна технологія графогеометричного моделювання Взаємозвязок 2D 3D комп ютерної графіки
Комп ютерна технологія графогеометричного моделювання Взаємозвязок 2D 3D комп ютерної графіки
Злочини у сфері комп`ютерної інформації 2 Комп`ютерна злочинність
Поняття комп`ютерної мережі
Енциклопедія комп`ютерної безпеки
Напрями комп`ютерної лінгвістики
© Усі права захищені
написати до нас